Se hace uso de los paquetes DT para crear la tabla y de ggplot2 para crear los gráficos.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(readr)
library(ggplot2)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(DT)
library(readxl)
# Carga
datos_policiales <-
read_excel("C:/Users/Fiorela/Downloads/estadisticaspoliciales2021.xls")
datos_policiales$Fecha <- as.Date(datos_policiales$Fecha, format = "%d/%m/%Y")
# Transformación
datos_policiales <-
datos_policiales %>%
select(Delito, Fecha, "Víctima" = Victima, Edad, "Género" = Genero, Provincia, "Cantón" = Canton) %>%
mutate(Fecha = as.Date(Fecha, format = "%d/%m/%Y"))
# Visualización Tabular
datos_policiales %>%
datatable(options = list(pageLength = 10,
language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')))
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html
# Gráfico de barras simples con cantidad de cada Delito
grafico_cantidad_delito <-
datos_policiales %>%
count(Delito) %>%
ggplot(aes(x = reorder(Delito, n), y = n)) +
geom_bar(stat = "identity") +
ggtitle("Cantidad de Delitos cometidos en Costa Rica - 2021") +
xlab("Tipo de Delito") +
ylab("Cantidad de Delitos") +
coord_flip() +
theme_get()
# Gráfico plotly
grafico_cantidad_delito %>%
ggplotly() %>%
config(locale = 'es')
# Gráfico de barras simples con delitos cometidos por mes
grafico_delitos_por_mes <-
datos_policiales %>%
ggplot(aes(x = reorder(Delito, Fecha), y = (format(Fecha, "%m")))) +
geom_bar(stat = "identity") +
ggtitle("Delitos cometidos por mes en Costa Rica - 2021") +
xlab("Tipo de Delito") +
ylab("Mes") +
coord_flip() +
theme_get()
# Gráfico plotly
grafico_delitos_por_mes %>%
ggplotly() %>%
config(locale = 'es')
# Gráfico de barras apiladas de proporción
proporcion_delitos_genero <-
datos_policiales %>%
ggplot(aes(x = Delito, fill = Género)) +
geom_bar(position = "fill") +
ggtitle("Proporciones de delitos por género") +
xlab("Tipo de delito") +
ylab("Proporción") +
labs(fill = "Género") +
coord_flip() +
theme_get()
ggplotly(proporcion_delitos_genero) %>% config(locale = 'es')